<xsl:stylesheet version="1.1"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns="http://www.w3.org/2000/svg"
                xmlns:xlink="http://www.w3.org/1999/xlink">

  <xsl:output method="xml"/>
  
  <xsl:param name="rotation">0</xsl:param>
  <xsl:param name="scale">1</xsl:param>
  <xsl:param name="image"/>
  <xsl:param name="image-width">256</xsl:param>
  <xsl:param name="image-height">256</xsl:param>
  
  
  <xsl:template match="/">
    <xsl:variable name="width">
      <xsl:choose>
        <xsl:when test="$image-height > $image-width">
          <xsl:value-of select="$image-height * $scale"/>
        </xsl:when>
        <xsl:otherwise>
          <xsl:value-of select="$image-width * $scale"/>
        </xsl:otherwise>
      </xsl:choose>
    </xsl:variable>
    <xsl:variable name="height" select="$width"/>
    
	<svg width="{$width}" height="{$height}" viewBox="{-$width div 2} {-$height div 2} {$width} {$height}">
	    <g transform="rotate({$rotation})">
	    	<image x="{-$width div 2}" y="{-$height div 2}" width="{$width}" height="{$height}" xlink:href="{$image}"/>
	    </g>
	</svg>	  
  </xsl:template>
  
</xsl:stylesheet>